import { z } from "zod"

export const inputParamsSchema = {
  "integrationConfigurationId": z.string(),
  "externalId": z.string().optional(),
  "invoiceDate": z.string().datetime({ offset: true }).describe("Invoice date. Must be within the period's start and end."),
  "memo": z.string().describe("Additional memo for the invoice.").optional(),
  "period": z.record(z.any()).describe("<llm-instruction>This part of the input schema is truncated. If you want to pass the property `period` to the tool, first call the tool `expandSchema` with \"/properties/period\" in the list of pointers. This will return the expanded input schema which you can then use in the tool call. You may have to call `expandSchema` multiple times if the schema is nested.</llm-instruction>\n<property-description>Subscription period for this billing cycle.</property-description>"),
  "items": z.array(z.object({ "resourceId": z.string().describe("Partner's resource ID.").optional(), "billingPlanId": z.string().describe("Partner's billing plan ID."), "start": z.string().datetime({ offset: true }).describe("Start and end are only needed if different from the period's start/end.").optional(), "end": z.string().datetime({ offset: true }).describe("Start and end are only needed if different from the period's start/end.").optional(), "name": z.string(), "details": z.string().optional(), "price": z.string().regex(new RegExp("^[0-9]+(\\\\.[0-9]+)?$")).describe("Currency amount as a decimal string."), "quantity": z.number(), "units": z.string(), "total": z.string().regex(new RegExp("^[0-9]+(\\\\.[0-9]+)?$")).describe("Currency amount as a decimal string.") }).strict()),
  "discounts": z.array(z.object({ "resourceId": z.string().describe("Partner's resource ID.").optional(), "billingPlanId": z.string().describe("Partner's billing plan ID."), "start": z.string().datetime({ offset: true }).describe("Start and end are only needed if different from the period's start/end.").optional(), "end": z.string().datetime({ offset: true }).describe("Start and end are only needed if different from the period's start/end.").optional(), "name": z.string(), "details": z.string().optional(), "amount": z.string().regex(new RegExp("^[0-9]+(\\\\.[0-9]+)?$")).describe("Currency amount as a decimal string.") }).strict()).optional(),
  "test": z.record(z.any()).describe("<llm-instruction>This part of the input schema is truncated. If you want to pass the property `test` to the tool, first call the tool `expandSchema` with \"/properties/test\" in the list of pointers. This will return the expanded input schema which you can then use in the tool call. You may have to call `expandSchema` multiple times if the schema is nested.</llm-instruction>\n<property-description>Test mode</property-description>").optional()
}